-
Notifications
You must be signed in to change notification settings - Fork 28
CIRC-2364 Anonymize Single Request Post API #1632
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Create a /request-anonymization/{request UUID} Post API for anonymizing one a single closed request
Requirements/Scope:
Verify that the user has the UI-Requests Request-Anonymize Single Execute capability
Anonymizes request as described in https://folio-org.atlassian.net/browse/CIRC-2292
Returns an error message if anonymization fails
Acceptance Criteria:
Post API for single request anonymization by UUID is created
…ate wiring, update tests.
src/main/java/org/folio/circulation/infrastructure/storage/requests/RequestRepository.java
Outdated
Show resolved
Hide resolved
src/main/java/org/folio/circulation/resources/RequestAnonymizationResource.java
Outdated
Show resolved
Hide resolved
src/main/java/org/folio/circulation/services/EventPublisher.java
Outdated
Show resolved
Hide resolved
src/main/java/org/folio/circulation/services/RequestAnonymizationService.java
Show resolved
Hide resolved
src/test/java/org/folio/circulation/domain/anonymization/AnonymizeRequestTests.java
Outdated
Show resolved
Hide resolved
longvo-cv
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM! Solid implementation
src/main/java/org/folio/circulation/resources/RequestAnonymizationResource.java
Show resolved
Hide resolved
src/main/java/org/folio/circulation/services/RequestAnonymizationService.java
Outdated
Show resolved
Hide resolved
src/main/java/org/folio/circulation/services/RequestAnonymizationService.java
Outdated
Show resolved
Hide resolved
src/test/java/api/requests/RequestAnonymizationServiceTest.java
Outdated
Show resolved
Hide resolved
src/test/java/api/requests/RequestAnonymizationServiceTest.java
Outdated
Show resolved
Hide resolved
src/test/java/api/requests/RequestAnonymizationServiceTest.java
Outdated
Show resolved
Hide resolved
|
@yuntianhu In the future, please mention Jira ticket name in your commit messages: |
|
@OleksandrVidinieiev Thank you for the reminder, I will surely remember to do it 😄 |
- Add permissionsRequired and modulePermissions for /request-anonymization/{requestId} handler in ModuleDescriptor-template.json
- Use UuidUtil.isUuid in RequestAnonymizationService and return failed validation when requestId is invalid
- Simplify fetchRequest to delegate to requestRepository.getById without extra failWhen logic
- Change scrubPii to return Request instead of Result and call it via mapResult
- Simplify publishLog to return Result<Void> from eventPublisher without remapping
- Fix Result chain to use flatMapResult for validateStatus and after(...) for async update/log
- Remove unused validationError helper that relied on old ValidationError constructor
- Update RequestAnonymizationServiceTest to inject mocks via constructor (remove reflection)
- Adjust not-found test to return failed RecordNotFoundFailure instead of succeeded(null)
- Reorder imports in tests to follow mod-circulation import order convention
remove a unused line
src/main/java/org/folio/circulation/services/RequestAnonymizationService.java
Outdated
Show resolved
Hide resolved
src/main/java/org/folio/circulation/services/RequestAnonymizationService.java
Outdated
Show resolved
Hide resolved
src/test/java/api/requests/RequestAnonymizationServiceTest.java
Outdated
Show resolved
Hide resolved
src/test/java/api/requests/RequestAnonymizationServiceTest.java
Outdated
Show resolved
Hide resolved
src/main/java/org/folio/circulation/services/EventPublisher.java
Outdated
Show resolved
Hide resolved
Fix displayName/description wording: "anonymize request" instead of "anonymize requests". Update permission name to modperms.circulation.requests.anonymize.single. Remove redundant modulePermission already included in anonymize.single. Inline RequestRepository.using(...) initializer into single line. Condense ValidationErrorFailure.failedValidation(...) into one line. Add UUID format validation to requestId in anonymize-single-request-response.json. Remove extra spacing alignment in EventPublisher .put() calls. Replace wildcard imports in RequestAnonymizationServiceTest with explicit imports. Reorder imports to follow mod-circulation import convention. Adjust permission naming to follow FOLIO scope convention (item vs collection).
|



CIRC-2364-Anonymize Single Request Post API #1632
Ticket Description
Purpose/Overview:
Create a /request-anonymization/{request UUID} Post API for anonymizing one a single closed request
Requirements/Scope:
Verify that the user has the UI-Requests Request-Anonymize Single Execute capability
Anonymizes request as described in https://folio-org.atlassian.net/browse/CIRC-2292
Returns an error message if anonymization fails
Acceptance Criteria:
Post API for single request anonymization by UUID is created
Summary of Work Completed for Request Anonymization (CIRC-2364 / CIRC-2292)
I implemented backend support for manual single-request anonymization in mod-circulation, including all core API logic, data scrubbing, integration with storage, permissions, event publishing, and automated tests. This work completes a brand-new FOLIO circulation feature.
Approach for Single Request Anonymization